Security of information is a highly important aspect for any party transferring data. Users of networks, especially users of the Internet, are particularly vulnerable to unwanted parties intercepting data. The users may be commercial organisations, governments, universities or private individuals. Networks pass a huge variety of valuable, important and often confidential information. If the information is not secure, the consequences to the user can be disastrous. For example, the results may include financial losses, disclosure of confidential information, loss of confidence from clients and disruption to the user's activities.
In addition to transfer of information via networks, data transferred via other media such as storage disk, is also vulnerable to interception by unwanted parties.
To prevent such intrusion, data encryption methods are used to protect information during transmission from one end point to another. Encryption scrambles the data to make it unintelligible during transmission. In encryption systems, plain data is converted to a secure coded data (cipher text) using an encryption method or algorithm with a secret key. A secret key is known only to the sender and the recipient. The recipient at the intended destination can decrypt the data by using the previously agreed secret key and the reverse of the encryption algorithm.
Data, such as binary data, text data and other forms of data which does not need to be delivered at a given rate, is encrypted in known cryptography systems in blocks of data. The data is broken into blocks of data. The blocks can be formed of a plurality of bytes of data and may be of varying length. Each block is encrypted according to an encryption algorithm on a block by block basis. The decryption of the data is then carried out in a similar block by block manner.
When dealing with streams of data where the data is time dependent as opposed to blocks of text or binary data, block encryption is no longer appropriate or indeed possible. Streams of data include multi-media streams of voice, video, sensor data, and other types of data. This technology is applicable to pervasive computing, media streams, Internet music and video, command and control situations etc.
Streams may have a real time or data rate dependency, or may be sporadic and intermittent. Streams deliver data a byte at a time and may even have bytes skipped. Therefore, the bytes cannot be collected into blocks for encryption before delivery to the intended destination, as this will destroy the delivery rate and flow of the stream of data. For example, a stream of data may be communicated from a control environment in the form of one byte per week, a problem arises if the bytes must be collected into blocks before being communicated.
Current solutions buffer the data and encode the data using block ciphers. This can cause problems with real time or sparse streams. Encryption using Chaotic Equations can be carried out on a byte by byte basis.
Present technology for symmetrical encryption has lower security due to the use of a single algorithm for encryption which has the risk of being broken by brute force. The security can be increased by changing between more than one encryption algorithm. The frequency and time of each change of algorithm must be communicated between the sender and the recipient. The new algorithm to be used must not be determinable from the previous algorithm.
The security of an encrypted data flow can be increased by dynamically changing the encryption algorithm at each end of a secure link simultaneously, without requiring an exchange of information. The dynamic change could occur many times during a data transfer, so that to an external observer at any given instant they would not be able to determine which algorithm is used to encrypt the section of data.